#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
// 1.验证R状态
//int main()
//{
//    while(1) ;
//    return 0;
//}
// 2. 查看阻塞状态：
//int main()
//{
//    int x = 0;
//    scanf("%d",&x);
//    return 0;
//}
// 2. 用printf测试
//int main()
//{
//    while(1)
//         printf("hello shuaiming\n");
//    return 0;
//}
// 3.验证僵尸状态 
//int main()
//{
//    pid_t id = fork();
//    if(id < 0){
//        perror("fork");
//        return 1;
//    }
//    else if(id > 0){ // parent
//        printf("parent[%d] is sleeping...\n", getpid());
//        sleep(30);
//    }else{ // child
//        printf("child[%d] is begin Z...\n", getpid());
//        sleep(5);
//        exit(EXIT_SUCCESS);
//    }
//    return 0;
//}
// 4.验证孤儿进程
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
int main()
{
	pid_t id = fork();
    while(1)
    {
	    if (id < 0) {
		    perror("fork");
		    return 1;
	    }
	    else if (id == 0) {//child
		    printf("I am child, pid : %d,ppid : %d\n", getpid(),getppid());
		    sleep(2);
	    }
	    else {//parent
		    printf("I am parent, pid: %d\n", getpid());
		    sleep(2);
		    exit(0);
        }
    }
	return 0;
}
